//----grade-details------
//addcolor
$(addColor);
function addColor() {
    $('#subjectTbody tr').removeClass();
    for (var i = 0; i < $('#subjectTbody tr').length; i++) {
        if (i % 4 == 0) {
            $('#subjectTbody tr').eq(i).addClass('info');
        }
        if (i % 4 == 1) {
            $('#subjectTbody tr').eq(i).addClass('success');
        }
        if (i % 4 == 2) {
            $('#subjectTbody tr').eq(i).addClass('warning');
        }
        if (i % 4 == 3) {
            $('#subjectTbody tr').eq(i).addClass('active');
        }
    }
}//addcolor end

document.getElementById('downloadBtn').addEventListener('click', function () {
    // 发送请求到服务器以获取Excel文件  
    fetch('/subject-manage/download-excel1', {
        method: 'GET', // 或者 'POST'，根据你的需求  

    })
        .then(response => {
            // 检查响应是否成功  
            if (!response.ok) {
                throw new Error('网络响应错误');
            }
            // 返回一个blob对象，表示二进制数据  
            return response.blob();
        })
        .then(blob => {
            // 创建一个指向该blob的URL  
            const url = window.URL.createObjectURL(blob);
            // 创建一个a标签用于下载  
            const a = document.createElement('a');
            a.style.display = 'none';
            a.href = url;
            // 设置下载的文件名，这里假设服务器没有通过Content-Disposition设置  
            a.download = '主观题模板.xlsx'; // 你可以根据需要修改文件名  
            document.body.appendChild(a);
            a.click();
            // 清理工作  
            window.URL.revokeObjectURL(url);
            document.body.removeChild(a);
        })
        .catch(error => {
            console.error('下载文件时出错:', error);
        });
});
document.getElementById('downloadBtn').addEventListener('click', function () {
    // 发送请求到服务器以获取Excel文件  
    fetch('/subject-manage/download-excel2', {
        method: 'GET', // 或者 'POST'，根据你的需求  

    })
        .then(response => {
            // 检查响应是否成功  
            if (!response.ok) {
                throw new Error('网络响应错误');
            }
            // 返回一个blob对象，表示二进制数据  
            return response.blob();
        })
        .then(blob => {
            // 创建一个指向该blob的URL  
            const url = window.URL.createObjectURL(blob);
            // 创建一个a标签用于下载  
            const a = document.createElement('a');
            a.style.display = 'none';
            a.href = url;
            // 设置下载的文件名，这里假设服务器没有通过Content-Disposition设置  
            a.download = '客观题模板.xlsx'; // 你可以根据需要修改文件名  
            document.body.appendChild(a);
            a.click();
            // 清理工作  
            window.URL.revokeObjectURL(url);
            document.body.removeChild(a);
        })
        .catch(error => {
            console.error('下载文件时出错:', error);
        });
});
$('#btn1').click(function () {
    $('#fliterBox').css("display") == "block" ? $('#fliterBox').hide('slow') : $('#fliterBox').show('slow');
});
// switch and show fliterList items
for (let i = 0; i < $('#fliterListNav ul li').length; i++) {
    $('#fliterListNav ul li:eq(' + i + ')').click(function (event) {
        $('#fliterListNav ul li').removeClass('nav-actived');
        $(this).addClass('nav-actived');
        var listTable = {
            "0": [],
            "1": [],
            "2": [],
            "3": [],
            "4": []
        };

        $('#fliterList ul li').html("");
        for (x in listTable[$(this).attr("name")]) {
            $('#fliterList ul li:eq(' + x + ')').html(listTable[$(this).attr("name")][x]);
        }
    });
}
// switch and show fliterList items end

// bind click event for list items
for (let j = 0; j < $('#fliterList ul li').length; j++) {
    $('#fliterList ul li:eq(' + j + ')').click(function (event) {
        $('#fliterBox').hide('slow');
        $('#span1').text(this.innerHTML);
    });
}

$(document).ready(function () {
    var jsonData0 = null; // 初始化jsonData0  

    $('#inputFile').on('change', function (event) {
        var file = event.target.files[0];
        if (!file) {
            return;
        }

        var reader = new FileReader();
        reader.onload = function (e) {
            var data = e.target.result;
            var workbook = XLSX.read(data, { type: 'array' });
            jsonData0 = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);
            console.table(jsonData0);
            console.log(jsonData0);
            // 这里可以添加对jsonData0的进一步处理或验证  
        };
        reader.readAsArrayBuffer(file);
    });

    $('#subjectbtn').on('click', function () {
        if (!jsonData0) {
            alert('请先选择一个Excel文件！');
            return;
        }

        fetch('/subject-manage/fileupload', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(jsonData0) // 将jsonData0转换为JSON字符串并发送  
        })
            .then(response => {
                if (!response.ok) {
                    throw new Error('Network response was not ok');
                }
                return response.text(); // 假设服务器返回文本，根据需要可以改为 json()  
            })
            .then(data => {
                console.log('服务器响应:', data);
                alert('文件上传成功！');
            })
            .catch(error => {
                console.error('上传失败:', error);
                alert('上传文件时发生错误，请重试！');
            });
    });
});

$('#subjectTbody').on('click', '.deleteOne', function () {
    if (confirm("确定删除吗？")) {
        var $row = $(this).closest('tr');
        var describe = $row.find('td:eq(1)').text().trim();
        $.ajax({
            type: 'POST',
            url: '/subject-manage/deletesubject',
            data: { 'describe': describe },
            success: function (response) {
                if (response.status === 'success') {
                    $row.remove();
                    addColor();
                    alert("删除成功！");
                } else {
                    alert("删除失败！");
                }
            },
            error: function (xhr, status, error) {
                alert("删除失败！");
                console.error("请求失败: " + error);
            }
        });
    }
});
function addEnter() {
    //添加至下一行
    $('table tr:last').after($('<tr><td class="checkbox m-0"><label><input type="checkbox" name="a"></label></td><td></td><td></td><td></td><td></td><td></td> <td><i class="fa fa-trash-o cur-p deleteOne"></i>/<i class="fa fa-edit changeInfrom"></i></td></tr>'));
    $('table tr:last td:eq(1)').text($('#inputNum').val());
    $('table tr:last td:eq(2)').text($('#inputName').val());
    $('table tr:last td:eq(3)').text($('#inputClass').val());
    $('table tr:last td:eq(6)').find(".deleteOne").click(deleter);
    $('table tr:last td:eq(6)').find(".changeInfrom").click(changeInfo);
    colseZz();
}

//change student info enter
function changeEnter(trobject) {
    trobject.find('td:eq(1)').text($('#inputNum').val());
    trobject.find('td:eq(2)').text($('#inputName').val());
    trobject.find('td:eq(3)').text($('#inputClass').val());
    colseZz();
}
//change student info enter end
//close and cancel
$('#cancelChange').click(colseZz);
$('#addClose').click(colseZz);
function colseZz() {
    $('#zz').css('display', 'none');
    $('#addUser').css('display', 'none');
}
//close and cancel end

$(document).ready(function fetchData() {
    $.ajax({
        url: '/subject-manage/getsubject', // 假设的API URL    
        type: 'get',
        dataType: 'json',
        success: function (data) {
            // 清空表格数据（如果需要）    
            $('#subjectTbody').empty();

            // 遍历数据并插入到表格中    
            data.forEach(function (subject) {
                var row = $('<tr></tr>');
                row.append($('<td></td>').text(subject.Code));
                row.append($('<td></td>').text(subject.describe));
                row.append($('<td></td>').text(subject.course));
                row.append($('<td></td>').text(subject.type));
                console.log(subject.type);
                var actionsCell = $('<td></td>');
                actionsCell.append($('<i class="fa fa-trash-o cur-p deleteOne"></i>').click(deleter));
                actionsCell.append($('<i class="fa fa-edit changeInfrom"></i>').click(function () {
                    changeInfo.call(this); // 确保this上下文正确    
                }));
                row.append(actionsCell);
                $('#subjectTbody').append(row);
            });

            // 调用添加颜色的函数（确保这个函数已定义）  
            if (typeof addColor === 'function') {
                addColor();
            }
        },
        error: function (xhr, status, error) {
            console.error('数据获取失败！', xhr, status, error);
            alert('数据获取失败！');
        }
    });
});

// 修改 changeInfo 函数以支持从DOM元素触发  
function changeInfo() {
    var row = $(this).closest('tr'); // 使用closest获取最近的tr元素    
    // 确保popup和march函数已定义  
    if (typeof popup === 'function' && typeof march === 'function') {
        popup("changeInfrom");
    }
}

// 注意：确保popup和march函数在你的代码库中是可访问的
// 修改 changeInfo 函数以支持从DOM元素触发  
function changeInfo() {
    window.changeobject = $(this).closest('tr'); // 使用closest获取最近的tr元素  
    popup("changeInfrom");
    march();
}

// 确保在文档加载时调用 fetchData 函数  
function deleter() {
    if (confirm("确定删除吗？") == true) {
        var $row = $(this).closest('tr'); // 获取包含删除按钮的行  
        var describe = $row.find('td:eq(1)').text().trim(); // 从第二列（学号列）获取学号  
        var data = {
            'describe': describe
        };
        $.ajax({
            type: 'POST',                       //请求方式
            url: '/student-manage/deletestudent',  //请求的URL地址
            data: data,
            datatype: "json",
            success: function (response) {
                location.reload();
                if (response.message == "Student ID Deleted")
                    alert("删除成功！")
                if (response.message == "Student ID not exsit")
                    alert("删除失败，学生ID不存在！")
            },
            error: function (xhr, status, error) { // 添加错误处理函数  
                alert("删除失败！")
                console.error("请求失败: " + error);
            }
        })
    }
}
$('.deleteOne').click(deleter);


$('.changeInfrom').on("click", changeInfo);
function changeInfo(e) {
    var formdata = {
        describe: $('#inputNum').val(),
        course: $('#inputName').val(),
        type: $('#inputCourse').val()
    };
    console.log(formdata);
    $.ajax({
        type: 'POST',                       //请求方式
        url: '/student-manage/changestudent',  //请求的URL地址
        data: formdata,
        datatype: "json",
        success: function (response) {
            if (response.status == success) {
                location.reload();
                addColor();

            }
            else { //请求成功后的回调函数
                console.log(formdata);
            }
        },
        error: function (xhr, status, error) { // 添加错误处理函数  
            alert("修改失败！")
            console.error("请求失败: " + error);
        }
    })
    popup("changeInfrom");;
}

$(document).ready(function () {
    $('#search').on('click', function () {
        var searchText = $('#searchText').val().toLowerCase();
        console.log(searchText);
        console.log(1);// 将搜索文本转换为小写
        $('#subjectTbody tr').each(function () {  // 直接遍历 tbody 下的 tr 元素  
            var $tr = $(this);
            var isVisible = false; // 假设当前行不可见  

            // 遍历当前行的所有td，检查是否包含搜索文本  
            $tr.find('td').each(function () {
                if ($(this).text().toLowerCase().indexOf(searchText) !== -1) {
                    isVisible = true; // 如果任何td匹配，设置isVisible为true  
                    return false; // 跳出内部循环  
                }
            });

            // 根据isVisible的值显示或隐藏行  
            if (isVisible) {
                $tr.css('display', ''); // 显示行，不设置特定的 display 值，因为默认就是 table-row  
            } else {
                $tr.css('display', 'none');
            }
        });
    });
})